home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gnu / adainc / a-strfix.ads < prev    next >
Text File  |  1996-01-30  |  7KB  |  250 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT RUNTIME COMPONENTS                          --
  4. --                                                                          --
  5. --                    A D A . S T R I N G S . F I X E D                     --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.8 $                              --
  10. --                                                                          --
  11. -- This specification is adapted from the Ada Reference Manual for use with --
  12. -- GNAT.  In accordance with the copyright of that document, you can freely --
  13. -- copy and modify this specification,  provided that if you redistribute a --
  14. -- modified version,  any changes that you have made are clearly indicated. --
  15. --                                                                          --
  16. ------------------------------------------------------------------------------
  17.  
  18.  
  19. with Ada.Strings.Maps;
  20. with Ada.Strings.Search;
  21.  
  22. package Ada.Strings.Fixed is
  23. pragma Preelaborate (Fixed);
  24.  
  25.    --------------------------------------------------------------
  26.    -- Copy Procedure for Strings of Possibly Different Lengths --
  27.    --------------------------------------------------------------
  28.  
  29.    procedure Move
  30.      (Source  : in  String;
  31.       Target  : out String;
  32.       Drop    : in  Truncation := Error;
  33.       Justify : in  Alignment  := Left;
  34.       Pad     : in  Character  := Space);
  35.  
  36.    ------------------------
  37.    -- Search Subprograms --
  38.    ------------------------
  39.  
  40.    --  Note: in this implementation, these search subprograms are in a
  41.    --  separate package Ada.Strings.Search. The declarations are thus
  42.    --  replaced by renamings of these routines (which is perfectly valid
  43.    --  since it is semantically undetectable that we have renamings here
  44.    --  rather than "real" subprogram declarations).
  45.  
  46.    function Index
  47.      (Source   : in String;
  48.       Pattern  : in String;
  49.       Going    : in Direction := Forward;
  50.       Mapping  : in Maps.Character_Mapping := Maps.Identity)
  51.       return     Natural
  52.    renames Ada.Strings.Search.Index;
  53.  
  54.    function Index
  55.      (Source   : in String;
  56.       Pattern  : in String;
  57.       Going    : in Direction := Forward;
  58.       Mapping  : in Maps.Character_Mapping_Function)
  59.       return     Natural
  60.    renames Ada.Strings.Search.Index;
  61.  
  62.    function Index
  63.      (Source : in String;
  64.       Set    : in Maps.Character_Set;
  65.       Test   : in Membership := Inside;
  66.       Going  : in Direction  := Forward)
  67.       return   Natural
  68.    renames Ada.Strings.Search.Index;
  69.  
  70.    function Index_Non_Blank
  71.      (Source : in String;
  72.       Going  : in Direction := Forward)
  73.       return   Natural
  74.    renames Ada.Strings.Search.Index_Non_Blank;
  75.  
  76.    function Count
  77.      (Source   : in String;
  78.       Pattern  : in String;
  79.       Mapping  : in Maps.Character_Mapping := Maps.Identity)
  80.       return     Natural
  81.    renames Ada.Strings.Search.Count;
  82.  
  83.    function Count
  84.      (Source   : in String;
  85.       Pattern  : in String;
  86.       Mapping  : in Maps.Character_Mapping_Function)
  87.       return     Natural
  88.    renames Ada.Strings.Search.Count;
  89.  
  90.    function Count
  91.      (Source   : in String;
  92.       Set      : in Maps.Character_Set)
  93.       return     Natural
  94.    renames Ada.Strings.Search.Count;
  95.  
  96.    procedure Find_Token
  97.      (Source : in String;
  98.       Set    : in Maps.Character_Set;
  99.       Test   : in Membership;
  100.       First  : out Positive;
  101.       Last   : out Natural)
  102.    renames Ada.Strings.Search.Find_Token;
  103.  
  104.    ------------------------------------
  105.    -- String Translation Subprograms --
  106.    ------------------------------------
  107.  
  108.    function Translate
  109.      (Source  : in String;
  110.       Mapping : in Maps.Character_Mapping)
  111.       return    String;
  112.  
  113.    procedure Translate
  114.      (Source  : in out String;
  115.       Mapping : in Maps.Character_Mapping);
  116.  
  117.    function Translate
  118.      (Source  : in String;
  119.       Mapping : in Maps.Character_Mapping_Function)
  120.       return    String;
  121.  
  122.    procedure Translate
  123.      (Source  : in out String;
  124.       Mapping : in Maps.Character_Mapping_Function);
  125.  
  126.    ---------------------------------------
  127.    -- String Transformation Subprograms --
  128.    ---------------------------------------
  129.  
  130.    function Replace_Slice
  131.      (Source : in String;
  132.       Low    : in Positive;
  133.       High   : in Natural;
  134.       By     : in String)
  135.       return   String;
  136.  
  137.    procedure Replace_Slice
  138.      (Source  : in out String;
  139.       Low     : in Positive;
  140.       High    : in Natural;
  141.       By      : in String;
  142.       Drop    : in Truncation := Error;
  143.       Justify : in Alignment  := Left;
  144.       Pad     : in Character  := Space);
  145.  
  146.    function Insert
  147.      (Source   : in String;
  148.       Before   : in Positive;
  149.       New_Item : in String)
  150.       return     String;
  151.  
  152.    procedure Insert
  153.      (Source   : in out String;
  154.       Before   : in Positive;
  155.       New_Item : in String;
  156.       Drop     : in Truncation := Error);
  157.  
  158.    function Overwrite
  159.      (Source   : in String;
  160.       Position : in Positive;
  161.       New_Item : in String)
  162.       return     String;
  163.  
  164.    procedure Overwrite
  165.      (Source   : in out String;
  166.       Position : in Positive;
  167.       New_Item : in String;
  168.       Drop     : in Truncation := Right);
  169.  
  170.    function Delete
  171.      (Source  : in String;
  172.       From    : in Positive;
  173.       Through : in Natural)
  174.       return    String;
  175.  
  176.    procedure Delete
  177.      (Source  : in out String;
  178.       From    : in Positive;
  179.       Through : in Natural;
  180.       Justify : in Alignment := Left;
  181.       Pad     : in Character := Space);
  182.  
  183.    ---------------------------------
  184.    -- String Selector Subprograms --
  185.    ---------------------------------
  186.  
  187.    function Trim
  188.      (Source : in String;
  189.       Side   : in Trim_End)
  190.       return   String;
  191.  
  192.    procedure Trim
  193.      (Source  : in out String;
  194.       Side    : in Trim_End;
  195.       Justify : in Alignment := Left;
  196.       Pad     : in Character := Space);
  197.  
  198.    function Trim
  199.      (Source : in String;
  200.       Left   : in Maps.Character_Set;
  201.       Right  : in Maps.Character_Set)
  202.       return   String;
  203.  
  204.    procedure Trim
  205.      (Source  : in out String;
  206.       Left    : in Maps.Character_Set;
  207.       Right   : in Maps.Character_Set;
  208.       Justify : in Alignment := Strings.Left;
  209.       Pad     : in Character := Space);
  210.  
  211.    function Head
  212.      (Source : in String;
  213.       Count  : in Natural;
  214.       Pad    : in Character := Space)
  215.       return   String;
  216.  
  217.    procedure Head
  218.      (Source  : in out String;
  219.       Count   : in Natural;
  220.       Justify : in Alignment := Left;
  221.       Pad     : in Character := Space);
  222.  
  223.    function Tail
  224.      (Source : in String;
  225.       Count  : in Natural;
  226.       Pad    : in Character := Space)
  227.       return   String;
  228.  
  229.    procedure Tail
  230.      (Source  : in out String;
  231.       Count   : in Natural;
  232.       Justify : in Alignment := Left;
  233.       Pad     : in Character := Space);
  234.  
  235.    ----------------------------------
  236.    -- String Constructor Functions --
  237.    ----------------------------------
  238.  
  239.    function "*"
  240.      (Left  : in Natural;
  241.       Right : in Character)
  242.       return  String;
  243.  
  244.    function "*"
  245.      (Left  : in Natural;
  246.       Right : in String)
  247.       return  String;
  248.  
  249. end Ada.Strings.Fixed;
  250.